The present invention relates to debugging an executable at runtime to provide additional data to a debugger and a dynamic analysis tool, and more specifically, to generating dynamic analysis errors in an executable in the context of a debugger.
An issue in developing software is that the quality of code is dependent on many factors, such as the skill level of the developers, the quality of testing, and the sufficient time to test every path of code. In today's competitive market, the time to design, generate, and test code is constantly shrinking, while the time to fix problems within the code is becoming increasingly more critical. There is a need to provide better tools for developers to help speed the diagnostic process and help developers become more proactive at looking for potential problem areas before issues arise in the field.
Dynamic analysis tools, such as PurifyPlus™, available from UNICOM Systems, Inc., provide a toolset that improves the reliability of software applications by identifying difficult to find memory errors, such as uninitialized memory access, buffer overflow, and improper freeing of memory. A limitation of dynamic analysis tools, however, is when the dynamic analysis tools are used on existing executables for the first time. In such cases, the dynamic analysis tools may detect numerous errors that have been in the code for a long time. Depending on the size of the code, and the number of revisions, versions, or related systems, the dynamic analysis tool may detect hundreds, if not thousands, of issues. Many of the errors identified by the dynamic analysis tools may be harmless or very unlikely to disrupt overall program operation or result in incorrect computing results, and thus, may not worth the time to fix. In any case, the sheer number of errors can overwhelm a developer. More importantly, the sheer number of errors can make it very difficult for a developer to determine which errors are related to the particular problem the developer is trying to fix address, especially when the developer is under pressure to fix the problem quickly.